this._screenSaverSettings = new Gio.Settings({ schema: SCREENSAVER_SCHEMA });
this._lockdownSettings = new Gio.Settings({ schema: LOCKDOWN_SCHEMA });
this._privacySettings = new Gio.Settings({ schema: PRIVACY_SCHEMA });
+ this._orientationSettings = new Gio.Settings({ schema: 'org.gnome.settings-daemon.peripherals.touchscreen' });
this._session = new GnomeSession.SessionManager();
this._haveShutdown = true;
this._lockdownSettings.connect('changed::' + DISABLE_LOG_OUT_KEY,
Lang.bind(this, this._updateHaveShutdown));
+ this._orientationSettings.connect('changed::orientation-lock',
+ Lang.bind(this, this._updateOrientationLock));
+ this._orientationExists = false;
+ Gio.DBus.session.watch_name('org.gnome.SettingsDaemon.Orientation',
+ Gio.BusNameWatcherFlags.NONE,
+ Lang.bind(this, function() {
+ this._orentationExists = true;
+ this._updateOrientationLock();
+ }),
+ Lang.bind(this, function() {
+ this._orentationExists = false;
+ this._updateOrientationLock();
+ }));
+ this._updateOrientationLock();
+
Main.sessionMode.connect('updated', Lang.bind(this, this._sessionUpdated));
this._sessionUpdated();
},
}
},
+ _updateOrientationLock: function() {
+ this._orientationLockAction.visible = this._orientationExists;
+
+ let locked = this._orientationSettings.get_boolean('orientation-lock');
+ let icon = this._orientationLockAction.child;
+ icon.icon_name = locked ? 'rotation-locked-symbolic' : 'rotation-allowed-symbolic';
+ },
+
_updateLockScreen: function() {
let showLock = !Main.sessionMode.isLocked && !Main.sessionMode.isGreeter;
let allowLockScreen = !this._lockdownSettings.get_boolean(DISABLE_LOCK_SCREEN_KEY);
this._settingsAction.connect('clicked', Lang.bind(this, this._onSettingsClicked));
hbox.add(this._settingsAction, { expand: true, x_fill: false });
+ this._orientationLockAction = this._createActionButton('', _("Orientation Lock"));
+ this._orientationLockAction.connect('clicked', Lang.bind(this, this._onOrientationLockClicked));
+ item.actor.add(this._orientationLockAction, { expand: true, x_fill: false });
+
this._lockScreenAction = this._createActionButton('changes-prevent-symbolic', _("Lock"));
this._lockScreenAction.connect('clicked', Lang.bind(this, this._onLockScreenClicked));
hbox.add(this._lockScreenAction, { expand: true, x_fill: false });
app.activate();
},
+ _onOrientationLockClicked: function() {
+ this.menu.itemActivated();
+ let locked = this._orientationSettings.get_boolean('orientation-lock');
+ this._orientationSettings.set_boolean('orientation-lock', !locked);
+ this._updateOrientationLock();
+ },
+
_onLockScreenClicked: function() {
this.menu.itemActivated(BoxPointer.PopupAnimation.NONE);
Main.overview.hide();